package main

import "fmt"

func main() {
	var s string

	s = "III"

	v := romanToInt(s)
	fmt.Println(v)
}

// 延迟1位 要处理上一位的是加还是减
func romanToInt(s string) int {
	sByte := []byte(s)
	ans := 0
	preNum := numberMap[sByte[0]]
	for i := 1; i < len(sByte); i++ {
		v := numberMap[sByte[i]]
		if v > preNum {
			ans -= preNum
		} else {
			ans += preNum
		}
		preNum = v
	}
	ans += preNum
	return ans
}

var numberMap = map[byte]int{
	'I': 1,
	'V': 5,
	'X': 10,
	'L': 50,
	'C': 100,
	'D': 500,
	'M': 1000,
}
